using System;
using System.Collections.Generic;

namespace SmartHealthcare.Read.Api.DTo
{
    /// <summary>
    /// 住院费用统计DTO
    /// </summary>
    public class ExpenseStatisticsDto
    {
        /// <summary>
        /// 病人卡号
        /// </summary>
        public string MedicalCard { get; set; }
        
        /// <summary>
        /// 患者姓名
        /// </summary>
        public string PatientName { get; set; }
        
        /// <summary>
        /// 住院登记ID
        /// </summary>
        public long InpatientRegistryId { get; set; }
        
        /// <summary>
        /// 科室名称
        /// </summary>
        public string DepartmentName { get; set; }
        
        /// <summary>
        /// 总费用
        /// </summary>
        public decimal TotalAmount { get; set; }
        
        /// <summary>
        /// 医保报销总额
        /// </summary>
        public decimal TotalInsuranceAmount { get; set; }
        
        /// <summary>
        /// 自费总额
        /// </summary>
        public decimal TotalSelfPayAmount { get; set; }
        
        /// <summary>
        /// 按类型统计的费用明细
        /// </summary>
        public List<ExpenseTypeStatisticsDto> TypeStatistics { get; set; } = new List<ExpenseTypeStatisticsDto>();
        
        /// <summary>
        /// 按日期统计的费用明细
        /// </summary>
        public List<DailyExpenseStatisticsDto> DailyStatistics { get; set; } = new List<DailyExpenseStatisticsDto>();
    }
    
    /// <summary>
    /// 费用类型统计DTO
    /// </summary>
    public class ExpenseTypeStatisticsDto
    {
        /// <summary>
        /// 费用类型（药品/检查/治疗/手术/其他）
        /// </summary>
        public string ItemType { get; set; }
        
        /// <summary>
        /// 总费用
        /// </summary>
        public decimal TotalAmount { get; set; }
        
        /// <summary>
        /// 医保报销总额
        /// </summary>
        public decimal InsuranceAmount { get; set; }
        
        /// <summary>
        /// 自费总额
        /// </summary>
        public decimal SelfPayAmount { get; set; }
        
        /// <summary>
        /// 项目数量
        /// </summary>
        public int ItemCount { get; set; }
    }
    
    /// <summary>
    /// 每日费用统计DTO
    /// </summary>
    public class DailyExpenseStatisticsDto
    {
        /// <summary>
        /// 日期
        /// </summary>
        public DateTime Date { get; set; }
        
        /// <summary>
        /// 总费用
        /// </summary>
        public decimal TotalAmount { get; set; }
        
        /// <summary>
        /// 医保报销总额
        /// </summary>
        public decimal InsuranceAmount { get; set; }
        
        /// <summary>
        /// 自费总额
        /// </summary>
        public decimal SelfPayAmount { get; set; }
        
        /// <summary>
        /// 按类型统计的费用明细
        /// </summary>
        public List<ExpenseTypeStatisticsDto> TypeStatistics { get; set; } = new List<ExpenseTypeStatisticsDto>();
    }
} 